package com.douma.practical_3.external_sort;

import java.io.BufferedReader;
import java.io.IOException;

/**
 * 抖码课堂，专注中国程序员基础内功修炼
 * 官网：douma-tech.com
 * 公众号：资深程序员老汤
 *
 * @作者 : 老汤
 */

// BufferedIterator 是对文件输入流 BufferedReader 的包装，用于：
//  ① 判断输入流中是否还有数据，有过有的话，则先缓存下一行数据
//  ② 得到文件输入流中的下一行数据
public class BufferedIterator {
    // 有序文件的输入流 (文件流)
    private BufferedReader reader;
    // 有序文件中，当前遍历的整数
    private String currNumStr;

    public BufferedIterator(BufferedReader reader) {
        this.reader = reader;
    }

    public boolean hasNext() {
        try {
            currNumStr = this.reader.readLine();
        } catch (IOException e) {
            e.printStackTrace();
            currNumStr = null;
        }
        return currNumStr != null;
    }

    public String currNum() {
        return currNumStr;
    }

    public void close() {
        try {
            this.reader.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}
